package valve_test.forms;

import valve_test.drawning.graph_pane;

import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

/**
 * Created with IntelliJ IDEA.
 * User: Shinigami
 * Date: 16.07.14
 * Time: 22:30
 * To change this template use File | Settings | File Templates.
 */
public class settings {
    JFrame frame = new JFrame("Настройки");
    JLabel l1;
    JLabel l2;
    JLabel l3;
    JLabel l4;
    JButton bt1;
    JButton bt2;
    JButton bt3;
    JButton bt4;
    JButton bt_exit;
    JTextField tf;
    public settings(){
        frame.setLayout(null);
        l1 = new JLabel(" - иконка сливной цистерны");
        l1.setSize(250,40);
        l1.setLocation(10, 10);
        l1.setIcon(graph_pane.getCist_o_icon());
        frame.add(l1);
        l2 = new JLabel();
        l2.setText(" - иконка вентиля");
        l2.setSize(250, 40);
        l2.setLocation(10, 60);
        l2.setIcon(graph_pane.getValve_icon());
        frame.add(l2);
        l3 = new JLabel();
        l3.setText(" - иконка наливной цистерны");
        l3.setSize(250, 40);
        l3.setLocation(10, 110);
        l3.setIcon(graph_pane.getCist_i_icon());
        frame.add(l3);
        bt1 = new JButton();
        bt1.setText("Изменить");
        bt1.setSize(100, 30);
        bt1.setLocation(250, 20);
        bt1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JFileChooser dialog = new JFileChooser();
                dialog.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
                dialog.setApproveButtonText("Выбрать");//выбрать название для кнопки согласия
                dialog.setDialogTitle("Выберите файл для загрузки");// выбрать название
                dialog.setDialogType(JFileChooser.OPEN_DIALOG);// выбрать тип диалога Open или Save
                dialog.setMultiSelectionEnabled(false); // Разрегить выбор нескольки файлов
                FileNameExtensionFilter filter = new FileNameExtensionFilter("images", "jpeg", "jpg", "bmp", "png");
                dialog.setFileFilter(filter);
                dialog.showOpenDialog(new JFrame());
                File file = dialog.getSelectedFile();
                if (file != null) {
                    BufferedImage image = null;
                    try {
                        image = ImageIO.read(file);
                    } catch (IOException e1) {
                        e1.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
                    }
                    BufferedImage resizedImage = resize(image, 40, 40);
                    graph_pane.setCist_o_icon(resizedImage);
                    l1.setIcon(new ImageIcon(resizedImage));
                }
            }
        });
        frame.add(bt1);
        bt2 = new JButton();
        bt2.setText("Изменить");
        bt2.setSize(100, 30);
        bt2.setLocation(250, 70);
        bt2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JFileChooser dialog = new JFileChooser();
                dialog.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
                dialog.setApproveButtonText("Выбрать");//выбрать название для кнопки согласия
                dialog.setDialogTitle("Выберите файл для загрузки");// выбрать название
                dialog.setDialogType(JFileChooser.OPEN_DIALOG);// выбрать тип диалога Open или Save
                dialog.setMultiSelectionEnabled(false); // Разрегить выбор нескольки файлов
                FileNameExtensionFilter filter = new FileNameExtensionFilter("images", "jpeg", "jpg", "bmp", "png");
                dialog.setFileFilter(filter);
                dialog.showOpenDialog(new JFrame());
                File file = dialog.getSelectedFile();
                if (file != null) {
                    BufferedImage image = null;
                    try {
                        image = ImageIO.read(file);
                    } catch (IOException e1) {
                        e1.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
                    }
                    BufferedImage resizedImage = resize(image, 40, 40);
                    graph_pane.setValve_icon(resizedImage);
                    l2.setIcon(new ImageIcon(resizedImage));
                }
            }
        });
        frame.add(bt2);
        bt3 = new JButton();
        bt3.setText("Изменить");
        bt3.setSize(100, 30);
        bt3.setLocation(250, 120);
        bt3.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JFileChooser dialog = new JFileChooser();
                dialog.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
                dialog.setApproveButtonText("Выбрать");//выбрать название для кнопки согласия
                dialog.setDialogTitle("Выберите файл для загрузки");// выбрать название
                dialog.setDialogType(JFileChooser.OPEN_DIALOG);// выбрать тип диалога Open или Save
                dialog.setMultiSelectionEnabled(false); // Разрегить выбор нескольки файлов
                FileNameExtensionFilter filter = new FileNameExtensionFilter("images", "jpeg", "jpg", "bmp", "png");
                dialog.setFileFilter(filter);
                dialog.showOpenDialog(new JFrame());
                File file = dialog.getSelectedFile();
                if (file != null) {
                    BufferedImage image = null;
                    try {
                        image = ImageIO.read(file);
                    } catch (IOException e1) {
                        e1.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
                    }
                    BufferedImage resizedImage = resize(image, 40, 40);
                    graph_pane.setCist_i_icon(resizedImage);
                    l3.setIcon(new ImageIcon(resizedImage));
                }
            }
        });
        frame.add(bt3);
        tf = new JTextField();
        tf.setLocation(10, 180);
        tf.setSize(100, 20);
        tf.setText(String.valueOf(graph_pane.getEpL()));
        frame.add(tf);
        l4 = new JLabel("Количество элементов в ряду:");
        l4.setSize(200,20);
        l4.setLocation(10,160);
        frame.add(l4);
        bt4 = new JButton();
        bt4.setText("Изменить");
        bt4.setSize(100, 30);
        bt4.setLocation(250, 170);
        bt4.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    graph_pane.setEpL(Integer.parseInt(tf.getText()));
                    graph_pane.vs = null;
                    graph_pane.ies = null;
                }
                catch (Exception ex){
                    //
                }
            }
        });
        frame.add(bt4);
        frame.setResizable(false);
        frame.setVisible(true);
        frame.setSize(400,300);
    }

    public static BufferedImage resize(BufferedImage image, int width, int height) {
        BufferedImage bi = new BufferedImage(width, height, BufferedImage.TRANSLUCENT);
        Graphics2D g2d = (Graphics2D) bi.createGraphics();
        g2d.addRenderingHints(new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY));
        g2d.drawImage(image, 0, 0, width, height, null);
        g2d.dispose();
        return bi;
    }

}
